package test0302;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * 编写程序, 输出一个斐波那契数列
 * 输入: 一个自然数 a
 * 输出: 一个小于等于 a 的一个斐波那契数列
 */
@SuppressWarnings({"all"})
public class Main02 {

    public static void main(String[] args) {
        try (Scanner scanner = new Scanner(System.in)) {
            System.out.println("请输入一个整数 a, 该程序返回小于等于 a 的斐波那契数列: ");
            int a = scanner.nextInt();
            List<Integer> fib = fibonacci(a);
            System.out.println(fib);
        }
    }

    // 斐波那契数列 1 1 2 3 5 8 13
    private static List<Integer> fibonacci(int a) {
        if (a < 1){
            return new ArrayList<>();
        }
        List<Integer> fib = new ArrayList<>();
        int num1 = 0;
        int num2 = 1;
        while (true){
            if (num2 > a){
                break;
            }
            int num3 = num1 + num2;
            fib.add(num2);
            num1 = num2;
            num2 = num3;
        }
        return fib;
    }
}
